/*
 * ControladorDemonio.h
 *
 *  Created on: 04/07/2014
 *      Author: loreyalan
 */

#ifndef CONTROLADORDEMONIO_H_
#define CONTROLADORDEMONIO_H_

#include "../Includes.h"
#include "../Torneo.h"
#define TAM_VECTOR_PARTIDAS 100

class ControladorDemonio: public Thread {
private:

	SharedMemory *shm  ;							// Puntero al objeto que administra los accesos a la shm con el torneo.
	Semaforo* semShm   ;							// Puntero al semaforo que sincroniza el acceso a la shm con el torneo.
	char semShmName [50];
	pid_t pidPartida;
	int shmid;
	t_vector_daemon *buffer;
	key_t llave;
	Torneo *torneo;
public:
	ControladorDemonio(bool atributo);
	virtual ~ControladorDemonio();

	void run();
	bool conectarShm();
	void escribirVectorPartidas();
	void cerrarShm();
	void crearMemoriaCompartida(pid_t pid, bool liberar);
	void setTorneo(Torneo *torneo);
	void liberarRecursos();
};

#endif /* CONTROLADORDEMONIO_H_ */
